home *** CD-ROM | disk | FTP | other *** search
- {
- ROB PERELMAN
-
- > I want to put the character and scan code for ALT-V in the keyboard buffer.
- > In fact I would like to put it in there twice. I need it to be in the
- > buffer so that when my program terminates the parent process will act on
- > that key.
-
- {
- If this is being used with Turbo Pascal Version 3.0, you MUST set
- the C and U compiler directives to MINUS!
- If this is being used with Turbo Pascal Version 4.0, then set the
- CheckBreak variable of the CRT unit to FALSE!
- }
-
- Uses
- Crt;
-
- Type
- BufType = Array[30..62] of Byte;
-
- Var
- Head : Integer Absolute $0000 : $041A; { Location of head of buffer }
- Tail : Integer Absolute $0000 : $041C; { Location of tail of buffer }
- KBDBuf : BufType absolute $0000 : $041E; { Absolute location of buffer }
- S : String[80]; { Input string }
-
- Procedure StufftheBuff (Ch : Char; Code : Byte);
- Var
- TempTail : Integer; { Temporary holding of Tail }
- Begin
- TempTail := Tail; { Store the Temporary Tail }
- Tail := Tail + 2; { Incriment Tail to next pos }
- If Head = Tail Then { Is the buffer full? }
- Begin
- Tail := TempTail; { Reset to previos value }
- Sound(440); { Beep the user }
- Delay(400); { Delay for the beep }
- NoSound; { Turn off the sound }
- End
- Else
- Begin
- KBDBuf[TempTail] := Ord(Ch); { Put the ASCII value in buf }
- KBDBuf[TempTail + 1] := Code; { Put extended keypress valu }
- If Tail > 60 then { Last position. Wrap? }
- Tail := 30; { Wrap to 1st position }
- End;
- End;
-
- Begin
- ClrScr; { Clear the Screen }
- StufftheBuff ( 'D',0 ); { Start stuffing the buffer }
- StufftheBuff ( 'I',0 ); { Another stuff of the Buffer}
- StufftheBuff ( 'R',0 ); { " " " " " }
- StufftheBuff ( #13,0 ); { CR } { Stuff a carriage return }
- End.